A critical problem for vendors providing communications equipment and services involves building effective displays for presenting network information. Such displays are generally known as network interfaces, and are commonplace throughout the communications industry. These network interfaces are used in network management systems, network provisioning systems, operations support systems, and numerous other applications.
A network generally consists of nodes and links, which describe the network topology, and associated attributes, which comprise the network data. The nodes and links may represent physical objects such as a city, or non-physical objects such as an Internet Protocol (IP) domain or a web page address. The attributes may be raw measurements, such as the number of packets sent between two routers, number of accesses to a web page, or computed aggregates such as the average link utilization or number of IP sites within a city. The link attributes may be directed, such as the number of calls transmitted from Chicago to New York, or undirected, such as the average utilization of a two-way trunk group. The attributes may be static, such as link capacities, or time-varying, such as the network loading throughout a given day. The networks may be partitioned hierarchically, as in the domain names of an IP network, or flat, as in a non-hierarchical routing circuit-switched network. If the nodes have geographic positions, there may be maps associated with the network. The map detail will generally vary, however, from coarse country, state and county outlines for national and international networks, to fine-grain physical details such as trench locations for networks involving local access loops. The maps may be stored as, for example, sets of outlines, color-coded polygons, or scanned images.
A common type of conventional network interface is based on a node and link network diagram, and is described in, for example, J. Bertin, "Graphics and Graphic Information Processing," Walter de Gruter & Co., Berlin, 1981. In this network interface, the nodes are positioned spatially and represented using graphical objects known as "glyphs." The links are represented as lines drawn between glyphs. The lines may be segments, arcs or three-dimensional curves. The node positioning may be geographic, if spatial information is available, or logical to illustrate interconnections. Visual characteristics of the glyphs and lines, such as color, shape and thickness, are used to display the node and link attributes. The network maps may be animated to show time-oriented network data or partitioned to show hierarchical networks.
Many variations and improvements on the basic node and link network diagram have been developed. A number of exemplary techniques for displaying network data are described in C. Ware and G. Frank, "Evaluating Stereo and Motion Cues for Visualizing Information Nets in Three Dimensions," ACM Transactions on Graphics, Vol. 15, No. 2, pp. 121-140, April 1996; G. R. Walker, P. A. Rea, S. Whalley, M. Hinds and N. J. Kings, "Visualization of Telecommunications Network Data," BT Technical Journal, Vol. 11, No. 4, pp. 54-63, October 1993; and R. A. Becker, S. G. Bick and A. R. Wilks, "Visualizing Network Data," IEEE Transactions on Visualization and Computer Graphics, Vol. 1, No. 1, pp. 16-28, March 1995. Network interfaces which attempt to exploit recently developed three-dimensional computer graphics hardware are described in, for example, K. C. Cox and S. G. Eick, "3D Displays of Internet Traffic," Proceedings of the Information Visualization Symposium, pp. 129-131, October 1995; K. C. Cox, S. G. Eick and T. He, "3D Geographic Network Displays," Sigmod Record, Vol. 25, No. 4, December 1996; K. M. Fairchild, S. E. Poltrock and G. W. Fumas, "SemNet: Three-Dimensional Graphic Representations of Large Knowledge Bases," Cognitive Science and Its Applications for Human Computer Interaction, R. Guindon, ed., L. Erlbaum Associates, Hillsdale, N.J., pp. 201-233, 1988; and I. F. Cruz and J. P. Twarog, "3D Graph Drawing with Simulated Annealing," GD'95 Proceedings Lecture Notes in Computer Science, Vol. 1027, Springer-Verlag, pp. 162-165, 1996.
The development effort involved in constructing a network interface can generally be divided into the following three parts: (1) the network data acquisition; (2) the user interface; and (3) view development (i.e., graphics representation of the network data). While the core efficiency of the interface generally hinges on the effectiveness of the views, most of the development time is often spent on the data acquisition and user interface. For a specific network application, such as network views for a management system, the user interface may consist of several network views combined with a graphical user interface (GUI). The programming effort involved in building such a network interface using conventional techniques is unduly time consuming, labor intensive and expensive.
Conventional techniques for constructing network interfaces typically involve programming the interface in a language such as C++. The C++ language is the current standard for creating high-performance graphics software, and most graphics APIs support C++ programming. C++ is also well-suited for efficiently handling complex data structures, high-performance rendering, and other delicate programming operations. Another important advantage of C++ is that it is an object-oriented language. This allows common data structures and interactions to be embedded in base classes and accessed by other classes through an efficient "inheritance" process. Unfortunately, there are a number of drawbacks to C++. For example, it is a low-level complex compiled language which can be error prone, tedious to program and difficult to debug. These characteristics make it a poor choice for programming the user interface portion of a network interface. More efficient user interface programming languages support high-level user interface primitives such as display icons or "buttons," and thereby facilitate the user interface design process. Commercially-available user interface application building languages include "Visual Basic" from Microsoft Corp. of Redmond, Wash. and Power Builder from Sybase, Inc. of Emeryville, Calif. for PC-based systems, and Tcl/Tk for both UNIX-based and PC-based systems. These languages are interpreted, easily changed and interactive languages, and thus provide an environment especially well-suited to quickly and efficiently building GUIs.
Although the above-noted high-level user interface programming languages could substantially improve the efficiency of generating the user interface portion of a network interface, conventional network interface generation techniques based on C++ have been unable to obtain full benefit of the user interface languages. This is attributable in part to the failure of the conventional techniques to address issues such as linking C++ variables to user interface code variables, passing user interface events between the user interface code and the C++ code, and synchronizing C++ display views and user interface code with the network data.